package cn.fntop.utils;

import lombok.experimental.UtilityClass;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;

/**
 * @author fn
 * @description
 * @date 2024/2/21 10:15
 */
@UtilityClass
public class JansiUtil {
    public String applyColor(Ansi.Color color, String text) {
        // 启用Jansi的ANSI渲染器，这样它就可以在控制台上正确地显示颜色了。
        AnsiConsole.systemInstall();
        try {
            Ansi ansi = Ansi.ansi();
            ansi.fg(color).a(text).reset();
            return ansi.toString();
        } finally {
            // 记得在程序结束时关闭ANSI渲染器，以避免影响其他可能使用控制台的程序。
            AnsiConsole.systemUninstall();
        }
    }

    public String applyRed(String text) {
        // 启用Jansi的ANSI渲染器，这样它就可以在控制台上正确地显示颜色了。
        AnsiConsole.systemInstall();
        try {
            Ansi ansi = Ansi.ansi();
            ansi.fgRed().a(text).reset();
            return ansi.toString();
        } finally {
            // 记得在程序结束时关闭ANSI渲染器，以避免影响其他可能使用控制台的程序。
            AnsiConsole.systemUninstall();
        }
    }

}
